package org.basic.sms.service;


import org.basic.common.mybatis.core.page.TableDataInfo;
import org.basic.common.mybatis.core.page.PageQuery;
import org.basic.sms.domain.dto.MessageSendDTO;
import org.basic.sms.domain.bo.SysSmsTemplateBo;
import org.basic.sms.domain.dto.SysTemplateChangeStatusDTO;
import org.basic.sms.domain.vo.SysSmsTemplateVo;

import java.util.Collection;
import java.util.List;

/**
 * 邮件模板Service接口
 *
 * @author Shao Hua
 * @date 2023-07-20
 */
public interface ISysSmsTemplateService {

    /**
     * 查询邮件模板
     */
    SysSmsTemplateVo queryById(Long id);

    /**
     * 查询邮件模板列表
     */
    TableDataInfo<SysSmsTemplateVo> queryPageList(SysSmsTemplateBo bo, PageQuery pageQuery);

    /**
     * 查询邮件模板列表
     */
    List<SysSmsTemplateVo> queryList(SysSmsTemplateBo bo);

    /**
     * 新增邮件模板
     */
    Boolean insertByBo(SysSmsTemplateBo bo);

    /**
     * 修改邮件模板
     */
    Boolean updateByBo(SysSmsTemplateBo bo);

    /**
     * 校验并批量删除邮件模板信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    void sendMessage(MessageSendDTO messageSendDTO);

    void changeStatus(SysTemplateChangeStatusDTO dto);
}
